<?php

/**
*@file macthai.php
* MacThai Mapping and Charset implementation.
*
*/

//
// +----------------------------------------------------------------------+
// | Akelos PHP Application Framework                                     |
// +----------------------------------------------------------------------+
// | Copyright (c) 2002-2005, Akelos Media, S.L.  http://www.akelos.org/  |
// | Released under the GNU Lesser General Public License                 |
// +----------------------------------------------------------------------+
// | You should have received the following files along with this library |
// | - COPYRIGHT (Additional copyright notice)                            |
// | - DISCLAIMER (Disclaimer of warranty)                                |
// | - README (Important information regarding this library)              |
// +----------------------------------------------------------------------+
//





/**
* MacThai  driver for Charset Class
*
* Charset::macthai provides functionality to convert
* MacThai strings, to UTF-8 multibyte format and vice versa.
*
* @package AKELOS
* @subpackage Localize
* @author Bermi Ferrer Martinez <bermi@akelos.org>
* @copyright Copyright (c) 2002-2005, Akelos Media, S.L. http://www.akelos.org
* @license GNU Lesser General Public License <http://www.gnu.org/copyleft/lesser.html>
* @link http://www.unicode.org/Public/MAPPINGS/ Original Mapping taken from Unicode.org
* @since 0.1
* @version $Revision 0.1 $
*/
class macthai extends AkCharset
{


	// ------ CLASS ATTRIBUTES ------ //



	// ---- Private attributes ---- //


	/**
	* MacThai to UTF-8 mapping array.
	*
	* @access private
	* @var    array    $_toUtfMap
	*/
	var $_toUtfMap = array(0=>0,1=>1,2=>2,3=>3,4=>4,5=>5,6=>6,7=>7,8=>8,9=>9,10=>10,11=>11,12=>12,13=>13,14=>14,15=>15,16=>16,17=>17,18=>18,19=>19,20=>20,21=>21,22=>22,23=>23,24=>24,25=>25,26=>26,27=>27,28=>28,29=>29,30=>30,31=>31,32=>32,33=>33,34=>34,35=>35,36=>36,37=>37,38=>38,39=>39,40=>40,41=>41,42=>42,43=>43,44=>44,45=>45,46=>46,47=>47,48=>48,49=>49,50=>50,51=>51,52=>52,53=>53,54=>54,55=>55,56=>56,57=>57,58=>58,59=>59,60=>60,61=>61,62=>62,63=>63,64=>64,65=>65,66=>66,67=>67,68=>68,69=>69,70=>70,71=>71,72=>72,73=>73,74=>74,75=>75,76=>76,77=>77,78=>78,79=>79,80=>80,81=>81,82=>82,83=>83,84=>84,85=>85,86=>86,87=>87,88=>88,89=>89,90=>90,91=>91,92=>92,93=>93,94=>94,95=>95,96=>96,97=>97,98=>98,99=>99,100=>100,101=>101,102=>102,103=>103,104=>104,105=>105,106=>106,107=>107,108=>108,109=>109,110=>110,111=>111,112=>112,113=>113,114=>114,115=>115,116=>116,117=>117,118=>118,119=>119,120=>120,121=>121,122=>122,123=>123,124=>124,125=>125,126=>126,127=>127,128=>171,129=>187,130=>8230,131=>63628,132=>63631,133=>63634,134=>63637,135=>63640,136=>63627,137=>63630,138=>63633,139=>63636,140=>63639,141=>8220,142=>8221,143=>63641,145=>8226,146=>63620,147=>63625,148=>63621,149=>63622,150=>63623,151=>63624,152=>63626,153=>63629,154=>63632,155=>63635,156=>63638,157=>8216,158=>8217,160=>160,161=>3585,162=>3586,163=>3587,164=>3588,165=>3589,166=>3590,167=>3591,168=>3592,169=>3593,170=>3594,171=>3595,172=>3596,173=>3597,174=>3598,175=>3599,176=>3600,177=>3601,178=>3602,179=>3603,180=>3604,181=>3605,182=>3606,183=>3607,184=>3608,185=>3609,186=>3610,187=>3611,188=>3612,189=>3613,190=>3614,191=>3615,192=>3616,193=>3617,194=>3618,195=>3619,196=>3620,197=>3621,198=>3622,199=>3623,200=>3624,201=>3625,202=>3626,203=>3627,204=>3628,205=>3629,206=>3630,207=>3631,208=>3632,209=>3633,210=>3634,211=>3635,212=>3636,213=>3637,214=>3638,215=>3639,216=>3640,217=>3641,218=>3642,219=>65279,220=>8203,221=>8211,222=>8212,223=>3647,224=>3648,225=>3649,226=>3650,227=>3651,228=>3652,229=>3653,230=>3654,231=>3655,232=>3656,233=>3657,234=>3658,235=>3659,236=>3660,237=>3661,238=>8482,239=>3663,240=>3664,241=>3665,242=>3666,243=>3667,244=>3668,245=>3669,246=>3670,247=>3671,248=>3672,249=>3673,250=>174,251=>169);
		

	/**
	*  UTF-8 to MacThai mapping array.
	*
	* @access private
	* @var    array    $_fromUtfMap
	*/
	var $_fromUtfMap = null;


	// ------------------------------



	// ------ CLASS METHODS ------ //


	// ---- Public methods ---- //


	/**
	* Encodes given MacThai string into UFT-8
	*
	* @access public
	* @see UtfDecode
	* @param    string    $string MacThai string
	* @return    string    UTF-8 string data
	*/
	function _Utf8StringEncode($string)
	{
		return parent::_Utf8StringEncode($string, $this->_toUtfMap);
	
	}// -- end of &Utf8StringEncode -- //

	/**
	* Decodes given UFT-8 string into MacThai
	*
	* @access public
	* @see UtfEncode
	* @param    string    $string UTF-8 string
	* @return    string    MacThai string data
	*/
	function _Utf8StringDecode($string)
	{
		$this->_LoadInverseMap();
		return parent::_Utf8StringDecode($string, $this->_fromUtfMap);
	}// -- end of &Utf8StringDecode -- //
		
		
	// ---- Private methods ---- //
		
	/**
	* Flips $this->_toUtfMap to $this->_fromUtfMap
	*
	* @access private
	* @return	null
	*/
	function _LoadInverseMap()
	{
		static $loaded;
		if(!isset($loaded)){
			$loaded = true;
			$this->_fromUtfMap = array_flip($this->_toUtfMap);
		}
	}// -- end of _LoadInverseMap -- //
	
}

?>